\documentclass{ctexart}

\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{lmodern}

\title{作业五: 安装最新版本的gsl}

\author{作者姓名：陈冬勇 \\ 作者专业和学号：信息与计算科学 3200103953}

\begin{document}

\maketitle

\section{roots.c的功能简介}

gsl库提供了用于各种迭代求解器和收敛测试的低级组件。我们可以将这些组合起来以实现所需的解决方案，并完全访问迭代的中间步骤。每一类方法都使用相同的框架，因此我们可以在运行时在求解器之间切换，而不需要重新编译程序。求解器的每个实例都跟踪自己的状态，允许在多线程程序中使用求解器。

roots.c正是这样一个符合上述叙述的程序，可以用于gsl库下的求根，而且在该程序中表现为一维求根。一维寻根算法可分为两类：根交叉法和根修正法。

（1）通过交叉求根的算法保证收敛。根交叉法从已知包含一个根的有界区域开始，不断地缩小这个有界区域的大小，直到它将根封闭到所需的误差精度。这为根的位置提供了一个严格的错误估计。

（2）根修正法技术试图提高对根的初步猜测。这个算法只有在开始时“足够接近”一个根，并且为了速度牺牲了严格的误差范围时才收敛。通过近似一个函数在根附近的行为，他们试图找到一个初始猜想的高阶改进。当函数的行为与算法相匹配且初始猜测良好时，根修正法可以确保快速收敛。

在GSL中，这两种算法都在类似的框架中使用。用户为算法提供高级驱动程序，本库提供每个步骤所需的单独函数。迭代有三个主要阶段，步骤是：为算法T初始化解决器状态s、使用迭代T更新s、测试收敛性，必要时重复迭代。根交叉法求解器的状态保存在gsl\_root\_solver结构体中。更新过程只使用函数求值(而不是导数)。根修正法求解器的状态保存在gsl\_root\_fdfsolver结构体中。

\end{document}


